}
if (primaryWasInFullscreen != this.primaryMonitor.inFullscreen) {
+ let windows = this._getWindowActorsForWorkspace(global.screen.get_active_workspace());
+ for (let i = 0; i < windows.length - 1; i++) {
+ let window = windows[i];
+ let metaWindow = window.meta_window;
+
+ // Skip minimized windows
+ if (!metaWindow.showing_on_its_workspace())
+ continue;
+
+ // Skip windows that aren't on the primary monitor
+ if (!metaWindow.is_on_primary_monitor())
+ continue;
+
+ // Minimize monitor sized windows
+ if (metaWindow.is_monitor_sized())
+ metaWindow.minimize();
+ }
this.emit('primary-fullscreen-changed', this.primaryMonitor.inFullscreen);
}
},
this._minimizing.push(actor);
- let xDest, yDest, xScale, yScale;
- let [success, geom] = actor.meta_window.get_icon_geometry();
- if (success) {
- xDest = geom.x;
- yDest = geom.y;
- xScale = geom.width / actor.width;
- yScale = geom.height / actor.height;
- } else {
- let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
- xDest = monitor.x;
- yDest = monitor.y;
- if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
- xDest += monitor.width;
- xScale = 0;
- yScale = 0;
- }
-
- Tweener.addTween(actor,
- { scale_x: xScale,
- scale_y: yScale,
- x: xDest,
- y: yDest,
+ if (actor.meta_window.is_monitor_sized()) {
+ Tweener.addTween(actor,
+ { opacity: 0,
time: WINDOW_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._minimizeWindowDone,
onOverwriteScope: this,
onOverwriteParams: [shellwm, actor]
});
+ } else {
+ let xDest, yDest, xScale, yScale;
+ let [success, geom] = actor.meta_window.get_icon_geometry();
+ if (success) {
+ xDest = geom.x;
+ yDest = geom.y;
+ xScale = geom.width / actor.width;
+ yScale = geom.height / actor.height;
+ } else {
+ let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
+ xDest = monitor.x;
+ yDest = monitor.y;
+ if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
+ xDest += monitor.width;
+ xScale = 0;
+ yScale = 0;
+ }
+
+ Tweener.addTween(actor,
+ { scale_x: xScale,
+ scale_y: yScale,
+ x: xDest,
+ y: yDest,
+ time: WINDOW_ANIMATION_TIME,
+ transition: 'easeOutQuad',
+ onComplete: this._minimizeWindowDone,
+ onCompleteScope: this,
+ onCompleteParams: [shellwm, actor],
+ onOverwrite: this._minimizeWindowOverwritten,
+ onOverwriteScope: this,
+ onOverwriteParams: [shellwm, actor]
+ });
+ }
},
_minimizeWindowDone : function(shellwm, actor) {
if (this._removeEffect(this._minimizing, actor)) {
Tweener.removeTweens(actor);
actor.set_scale(1.0, 1.0);
+ actor.set_opacity(255);
actor.move_anchor_point_from_gravity(Clutter.Gravity.NORTH_WEST);
shellwm.completed_minimize(actor);